//app.js
App({
    onLaunch: function () {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)

        // 登录
        wx.login({
            success: res => {
                // 1、发送 res.code 到后台换取 openId, sessionKey, unionId
                wx.request({
                    url: "http://127.0.0.1:8888" + '/wechat/code',
                    data: { code: res.code },
                    method: 'GET',
                    success: res => {
                        //保存服务器返回的sessionId（服务器随机生成，会过期，对应一个userId）
                        wx.setStorageSync("sessionId", res.header["Set-Cookie"]);

                        wx.getUserInfo({
                            success: userInfoRes => {
                                // 可以将 res 发送给后台解码出 unionId
                                this.globalData.userInfo = userInfoRes.userInfo
                                console.log("11111111")
                                console.log(userInfoRes.userInfo)
                                console.log("222222")


                                // 2、 调用后台：保存微信用户信息
                                wx.request({
                                    header: { "cookie": wx.getStorageSync("sessionId") },
                                    url: "http://127.0.0.1:8888" + '/wechat/save',
                                    data: {
                                        encryptedData: userInfoRes.encryptedData,
                                        iv: userInfoRes.iv
                                    },
                                    method: 'POST',
                                    success: res => {
                                        if (res.data.code === 200) {
                                            this.globalData.userId = res.data.data;
                                            if (this.userIdReadyCallback) {
                                                this.userIdReadyCallback()
                                            }
                                        }
                                    }
                                })

                                // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                                // 所以此处加入 callback 以防止这种情况
                                if (this.userInfoReadyCallback) {
                                    this.userInfoReadyCallback(userInfoRes)
                                }

                            },
                            fail: res => {
                                console.log("app.js, get userinfo fail")
                            }
                        });

                    },
                    fail: res => {
                        console.log("后台调用微信接口验证code出错");
                    },
                })

            }
        });
    },
    globalData: {
        userInfo: null
    }
})